<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>RVM : MMTk Tutorial</title>
	    <link rel="stylesheet" href="styles/site.css" type="text/css" />
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">	    
    </head>

    <body>
	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
		    <tr>
			    <td valign="top" class="pagebody">
				    <div class="pageheader">
					    <span class="pagetitle">
                            RVM : MMTk Tutorial
                                                    </span>
				    </div>
				    <div class="pagesubheading">
					    This page last changed on Feb 26, 2009 by <font color="#0050B2">steveblackburn</font>.
				    </div>

				    <h3><a name="MMTkTutorial-Overview"></a>Overview</h3>

<p>This tutorial will build up a sophisticated garbage collector from scratch, starting with the empty shell that is the <b>NoGC</b> "collector" in MMTk (collector is a misnomer in this case since NoGC does not collect), and gradually adding functionality.  </p>

<p>This tutorial will tell you the mechanics of <em>building</em> a collector in MMTk.  It will tell you <em>how</em> but it does not tell you anything about <em>why</em>.  The tutorial thus serves two purposes: 1) to give you some insight into the mechanics of MMTk (but <em>not</em> the underlying reasons or design rationale), and 2) show you that the mechanics of building a non-trivial GC in MMTk is not hard, hopefully giving you confidence to start exploring MMTk more deeply.</p>

<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>The current version of the tutorial was written with respect to the Jikes RVM svn head just prior to 3.0.2.  So please use either the head or 3.0.2 (if it is available).</td></tr></table></div>

<h3><a name="MMTkTutorial-1PreliminariesPreliminaries"></a><a href="Preliminaries.html" title="Preliminaries">1 Preliminaries</a></h3>

<h3><a name="MMTkTutorial-2BuildingaMarksweepCollectorBuildingaMarksweepCollector"></a><a href="Building a Mark-sweep Collector.html" title="Building a Mark-sweep Collector">2 Building a Mark-sweep Collector</a></h3>

<h3><a name="MMTkTutorial-3BuildingaHybridCopying%2FMarkSweepCollectorBuildingaHybridCollector"></a><a href="Building a Hybrid Collector.html" title="Building a Hybrid Collector">3 Building a Hybrid Copying/Mark-Sweep Collector</a></h3>




				    
                    			    </td>
		    </tr>
	    </table>
	    <table border="0" cellpadding="0" cellspacing="0" width="100%">
			<tr>
				<td height="12" background="http://docs.codehaus.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
			</tr>
		    <tr>
			    <td align="center"><font color="grey">Document generated by Confluence on Jul 04, 2010 19:57</font></td>
		    </tr>
	    </table>
    </body>
</html>